<?php

$admin_user_ret = new Ret('admin/user.tpl', 'admin/user.css');

// Prüfen, ob etwas gemacht werden muss
{
	// Prüfen, ob Daten zum bearbeiten gesendet wurden
	if (is_array($_POST) and count($_POST) > 0) {
		
		//Funktion ermitteln
		if (isset($_POST['function'])) {
			
			// Benutzer löschen
			if ($_POST['function'] === 'delete') {
				// Diese Funktion dient dem löschen aller selektierten Benutzer
				
				// Prüfen, ob Benutzer ausgewählt wurden
				if (isset($_POST['userselection'])) {
					
					// Alle selektierten User löschen
					foreach ($_POST['userselection'] as $suser) {
						DAOFactory::getInstance('User')->deleteById($suser);
					}
					
				} else {
					// Es wurde kein Benutzer zum löschen ausgewählt
					$admin_user_ret->add_error(ERR_NO_USER_SELECTED);
				}
				
			} else if ($_POST['function'] === 'add_right') {
				// Diese Funktion toggled ein Recht an einem Benutzer. Wenn der Benutzer das Recht
				// noch nicht besitzt, so wird es ihm hinzugefügt, sonst wird es ihgm wieder entfernt
				
				$new_userright = new Userright($_POST['userid'], $_POST['rightid']);
				$userrightDAO = DAOFactory::getInstance('Userright'); 
				
				// Prüfen, ob der Benutzer dieses Recht schon besitzt
				if (!$userright = $userrightDAO->exists($new_userright)) {
					
					// Wenn nein, dann soll er es bekommen
					$userrightDAO->save($new_userright);
					$admin_user_ret->add_info('Added right '. $_POST['rightid'] .' to user '. $_POST['userid']);
					
				} else {
					
					// Wenn er es schon hat, dann soll es entfernt werden
					$userrightDAO->delete($userright);
					$admin_user_ret->add_info('deleted right '. $_POST['rightid'] .' from user '. $_POST['userid']);
					
				}
				
				
			} else {
				// Es wurde keine valide funktion spezifiziert
				$admin_user_ret->add_error(ERR_FUNCTION_NOT_DEFINED);	
			}
			
		} else {
			// Es wurde keine funktion spezifiziert
			$admin_user_ret->add_error(ERR_NO_FUNCTION_DEFINED);
		}
	}
}

// Daten für das Template laden
{
	// Alle User laden
	$admin_user_ret->add_data('users', DAOFactory::getInstance('User')->get_all());
	
	// Alle Rechte laden, um diese einem User zuweisen zu können
	$admin_user_ret->add_data('rights', DAOFactory::getInstance('Right')->get_all());
}

// jQuery Snippets festlegen
{
	// Snippet zur Definition des "delete_selected_users" Buttons
	$admin_user_ret->add_jquerysnippet('admin/user/delete_selected.js');
	
	// Snippet zur Definition des "select_all_users" Buttons
	$admin_user_ret->add_jquerysnippet('admin/user/select_all.js');
}

// javascripts festlegen
{
	// generate_rights_div einbinden
	$admin_user_ret->add_javascript('admin/user/generate_rights_div.js');
	
	// add_right_to_user_func einbinden
	$admin_user_ret->add_javascript('admin/user/add_right_to_user_func.js');
}

return $admin_user_ret;

?>